struct Foo {
    a: u32,
    b: u32,
    c: u32,
}

#[derive(Debug)]
struct Bar {
    a: u32,
    b: u32,
    c: u32,
}

#[test]
fn it_works() {
    let foo: Foo = Foo { a: 1, b: 2, c: 3 };
    let bar = unsafe { &*(&foo as *const Foo as *const Bar) };
    assert_eq!(bar.a, 1);
    assert_eq!(bar.b, 2);
    assert_eq!(bar.c, 3);
}
